<?php

require_once '../db/Conexion.php';

//gestiona la accion solicitada 
function accion_controller() {
    $accion = FALSE;
    $sorteo_peticion = helper_data();
    $accion = $sorteo_peticion['accion'];
    if ($accion) {
        switch ($accion) {
            case 'save' :
                guardar($sorteo_peticion);
                break;
            case 'delete' :
                eliminar($sorteo_peticion['id']);
                break;
            case 'list' :
                listar();
                break;
            case 'edit' :
                editar($sorteo_peticion['id']);
                break;
        }
    } else {
        die("ERROR: No se recibieron los parametros correspondientes.");
    }
}

//OBTIENE LOS DATOS DE POST
function helper_data() {
    $sorteo = array();

    if (isset($_POST['id']))
        $sorteo['id'] = $_POST['id'];
    if (isset($_POST['nombre']))
        $sorteo['nombre'] = strtoupper($_POST['nombre']);
    if (isset($_POST['fecha_sorteo']))
        $sorteo['fecha_sorteo'] = $_POST['fecha_sorteo'];
    if (isset($_POST['habilita_encuesta']))
        $sorteo['habilita_encuesta'] = $_POST['habilita_encuesta'];
    if (isset($_POST['habilitado']))
        $sorteo['habilitado'] = $_POST['habilitado'];
    if (isset($_POST['observaciones']))
        $sorteo['observaciones'] = strtoupper($_POST['observaciones']);
    if (isset($_POST['intervalo']))
        $sorteo['intervalo'] = strtoupper($_POST['intervalo']);
    if (isset($_POST['accion']))
        $sorteo['accion'] = $_POST['accion'];
    
    return $sorteo;
}

//LISTADO
function listar() {
    $sorteos = consultar("Select * from sorteos as e ");
    require_once '../view/sorteo/ListSorteos.php';
}

//GUARDAR
function guardar($sorteo_peticion) {
    
    
    if (!$sorteo_peticion['id']) {
        if ($sorteo_peticion['habilitado']==1)
            validar_habilitado("select s.id from sorteos as s where s.habilitado=1 ");
        $query = "INSERT INTO sorteos ( nombre, intervalo, fecha_sorteo, habilita_encuesta, habilitado, observaciones) VALUES
                        (  '" . $sorteo_peticion['nombre'] . "',
                           '" . $sorteo_peticion['intervalo'] . "',
                           '" . $sorteo_peticion['fecha_sorteo'] . "',
                           '" . $sorteo_peticion['habilita_encuesta'] . "', 
                           '" . $sorteo_peticion['habilitado'] . "',
                           '" . $sorteo_peticion['observaciones'] . "');";
    } else {
        if ($sorteo_peticion['habilitado']==1)
            validar_habilitado("select s.id from sorteos as s where s.habilitado=1 and s.id!=".$sorteo_peticion['id']);
        $query = "UPDATE sorteos 
                                 SET nombre='" . $sorteo_peticion['nombre'] . "',
                                    intervalo='" . $sorteo_peticion['intervalo'] . "',
                                    fecha_sorteo='" . $sorteo_peticion['fecha_sorteo'] . "',
                                    habilita_encuesta='" . $sorteo_peticion['habilita_encuesta'] . "',
                                    habilitado='" . $sorteo_peticion['habilitado'] . "',
                                    observaciones='" . $sorteo_peticion['observaciones'] . "'
                                 WHERE id=" . $sorteo_peticion['id'] . " LIMIT 1;";
    }
    if (ejecutar($query)) {
        listar();
    } else {
        die("Error: No se pudo Guardar el Registro!");
    }
}

function validar_habilitado($query) {
    if (consultar($query)) {
        die("Error: Ya existe un sorteo activo!");
    }
}

//ELIMINAR
function eliminar($id) {
    $query = "DELETE FROM sorteos WHERE id=" . $id . " LIMIT 1;";
    if (ejecutar($query)) {
        listar();
    } else {
        echo "Error: No se puede Eliminar este registro";
    }
}

//EDITAR
function editar($id) {
    $query = "Select * from sorteos where id=" . $id;
    $sorteo = consultar($query);
    require_once '../view/sorteo/FormSorteo.php';
}

accion_controller();
